\chapter{Design}
\label{design}

The following chapter explains how we designed the system. As it is the most crucial part of the project, the protocol design will be explained first. Without a protocol that worked well, our system would not have been functional. Then the client and server design will be explained in detail, discussing how we've chosen to model the system. The last section will discuss in more detail how the networking between client and server was designed.

\input{Design/protocol.tex}

\input{Design/client.tex}

\input{Design/server.tex}

\input{Design/networking.tex}

\section{Summary}
Getting the design of a system correct is the most important and difficult part of a computing science project. We spent a fair amount of time on it, making sure we understand what's going on before we started coding. As expected, we didn't get everything right the first time. In the next chapter, the implementation of these designs will be discussed, and the problems we encountered with the design during coding.
